package conservare.boleto.service;

import java.text.ParseException;

import conservare.boleto.LeitorDeArquivoRetorno;
import conservare.modelo.boleto.ArquivoRetorno;
import conservare.modelo.boleto.ArquivoRetornoDetalhe;

public class ArquivoRetornoService {

	LeitorDeArquivoRetorno leitorDeArquivoRetorno;
	
	public ArquivoRetornoService(){}
	
	public ArquivoRetornoService(LeitorDeArquivoRetorno leitorDeArquivoRetorno){
		this.leitorDeArquivoRetorno = leitorDeArquivoRetorno;
	}
	
	public ArquivoRetorno importarArquivoRetorno() throws ParseException{
		
		ArquivoRetorno arquivoRetorno = new ArquivoRetorno();
		arquivoRetorno.setCnpjDaEmpresa(leitorDeArquivoRetorno.getHeaderCnpjEmpresa());
		arquivoRetorno.setDataGeracaoArquivo(leitorDeArquivoRetorno.getHeaderDataGeracaoArquivo());
		arquivoRetorno.setNomeDaEmpresa(leitorDeArquivoRetorno.getHeaderNomeDaEmpresa());
		arquivoRetorno.setNomeDoBanco(leitorDeArquivoRetorno.getHeaderNomeDoBanco());
		arquivoRetorno.setNumeroDoBanco(leitorDeArquivoRetorno.getHeaderNumeroDoBanco());
		arquivoRetorno.setNumeroSeqRetornoArquivo(leitorDeArquivoRetorno.getHeaderNumeroSequencialRetorno());
		
		
		
		for(int index = 0; index < leitorDeArquivoRetorno.getQuatidadesDeLinhasDadosDoPagamento(); index++){
			
			ArquivoRetornoDetalhe boletoRetornoDetalhe = new ArquivoRetornoDetalhe();
			boletoRetornoDetalhe.setDataVencimentoDoTitulo(leitorDeArquivoRetorno.getPagamentoDetalheVencimentoDoTitulo(index));
			boletoRetornoDetalhe.setDataPagamentoDoTitulo(leitorDeArquivoRetorno.getPagamentoDetalheDataPagamentoDoTitulo(index));
			boletoRetornoDetalhe.setNossoNumero(leitorDeArquivoRetorno.getPagamentoDetalheNosoNumero(index));
			boletoRetornoDetalhe.setValorAbatimento(leitorDeArquivoRetorno.getPagamentoDetalheValorAbatimento(index));
			boletoRetornoDetalhe.setValorDesconto(leitorDeArquivoRetorno.getPagamentoDetalheValorDesconto(index));
			boletoRetornoDetalhe.setValorIOF(leitorDeArquivoRetorno.getPagamentoDetalheValorIOF(index));
			boletoRetornoDetalhe.setValorLiquidoCreditado(leitorDeArquivoRetorno.getPagamentoDetalheValorLiquidoCreditado(index));
			boletoRetornoDetalhe.setValorMultaJuros(leitorDeArquivoRetorno.getPagamentoDetalheValorMultaEJuros(index));
			boletoRetornoDetalhe.setValorPago(leitorDeArquivoRetorno.getPagamentoDetalheValorPago(index));
			
			//boletoRetornoDetalhe.setBoleto(localizarBoletoEmitido(leitorDeArquivoRetorno.getHeaderNumeroDoBanco(),leitorDeArquivoRetorno.getPagamentoDetalheNosoNumero(index)));
			
			arquivoRetorno.adicionaBoletoRetornoDetalhe(boletoRetornoDetalhe);
		}
		
		return arquivoRetorno;
		
	}
}
